         SUBROUTINE (LN.IDS,MAX.LNS,LN.ERRS,OLINE,MNFST,MANIFEST.ID,VIEW,NEW.VIEW)
** Version# 31.0001[2] - 01/25/2014 - 08:38pm - TSMITH - eclipse
*** V31.0001 Change - Custom Coding . - 01/25/2014 - TSMITH - eclipse

*** Subroutine - SOE.MANIFEST.DISP.LNS
*-------------------------------------------------------------------------*
*** This subroutine will display each line of the manifest from the
*** manifest queue and refresh certain data if a line is removed.
*-------------------------------------------------------------------------*
*** Parameters:
*** LN.IDS      - Line ids                                           (OUT)
*** MAX.LNS     - Maximum number of lines                            (OUT)
*** LN.ERRS     - Array with record for each line if a warning has   (OUT)
***               occured or needs to be displayed.
*** OLINE       - Current line user is on                       [IN]/(OUT)
*** MNFST       - Manifest record. Stores necessary manifest    [IN]/(OUT)
***               MNFST<1>  = ship via
***               MNFST<2>  = ship date
***               MNFST<3>  = branch
***               MNFST<4>  = start time
***               MNFST<5>  = first delivery time
***               MNFST<6>  = interval between each delivery
***               MNFST<10> = stop info/override for stop
***               MNFST<11> = delivery time for stop #
***               MNFST<14> = time block list in order
***               MNFST<15> = value is stop # and subvalue is list of
***                           tickets on the manifest for that stop
***               MNFST<16> = comments for ticket position matched with <5>
*** MANIFEST.ID - Manifest ID number.  Not currently used.            (IN)
*** VIEW        - View number for displaying different screen views   [IN]
***               1 = Shipping Packages
***               2 = Expected Time
***               3 = Actual Time
***               5 = Dollars, Load Factor and Weight
***               6 = Expected Time/Actual Time
***               7 = Stage Locations and Hold Picking Flag
***               8 = shipment
*** NEW.VIEW    - Number representing which new view has been         (IN)
***               selected so part of the screen can be redrawn if need be
***               Uses same numerics as above (VIEW).
*-------------------------------------------------------------------------*

          READ COD.MSG FROM CTRLFILE,'MANIFEST.COD.MSG' ELSE
             COD.MSG = ''; * Flag to print COD message on manifest
          END

          SEP.CHR  = ''
          VIA      = MNFST<1>
          SHIP.DT  = MNFST<2>
          BR       = MNFST<3>
          STRT.TM  = MNFST<4>
          FDEL.TM  = MNFST<5>
          INTVL    = MNFST<6>

          W.FMT    = 'MR':PRD.WGHT$

          IF NEW.VIEW THEN
             IF VIEW # 1 THEN
                WINDOW.CHILD.CLOSE
             END
             BEGIN CASE
             CASE NEW.VIEW = 2 OR NEW.VIEW = 4
                WINDOW.CHILD 60,4,19,17,9
                PRINT @(60,4): 'ExpectedDiff'
                PRINT @(60,19):'                  '
                PRINT @(60,20):''
             CASE NEW.VIEW = 3
                WINDOW.CHILD 60,4,19,17,9
                PRINT @(60,4): 'Actual TmDiff'
                PRINT @(60,19):'                  '
                PRINT @(60,20):''
             CASE NEW.VIEW = 5
                WINDOW.CHILD 60,4,19,17,9
                PRINT @(60,4): 'DollarsLoadWght'
                PRINT @(60,19):'                 '
                PRINT @(60,20):''
             CASE NEW.VIEW = 6
                WINDOW.CHILD 52,4,27,17,9
                PRINT @(52,4): 'ExpecTmActual TmDiff'
                PRINT @(52,19):'                         '
                PRINT @(52,20):''
             CASE NEW.VIEW = 7
                WINDOW.CHILD 60,4,19,17,9
                PRINT @(60,4): 'Stage LocationHld'
                PRINT @(60,19):'                  '
                PRINT @(60,20):''
             CASE NEW.VIEW = 8
                WINDOW.CHILD 60,4,19,17,9
                PRINT @(60,4): 'Shipment #'
                PRINT @(60,19):'                   '
                PRINT @(60,20):''
             CASE OTHERWISE
                READV PACKAGES FROM CTRLFILE,'PACKAGE.TYPES',1 ELSE PACKAGES = ''
                HDG = ''
                FOR P = 1 TO 4
                   HDG := PACKAGES<1,P>[1,4] "R#4"
                   IF P < 4 THEN HDG := ''
                NEXT P
                CONVERT ' ' TO '' IN HDG
                PRINT @(60,4):HDG
             END CASE
             VIEW = NEW.VIEW
          END
          REDISPLAY.ALL = OLINE<1,1>
          OLINE         = OLINE<1,2>

          STP.ADR = ''
          OLD.STP = ''
          BLK.CT  = DCOUNT(MNFST<14>,VM)
          BLK.FRM = MNFST<14,1,1>
          BLK.NO  = 1
          ST.CT   = DCOUNT(MNFST<15>,VM)
          MSG     = ''
          MSG.CT    = 0    ;* For Branch and Ship info errors
          MSG.GL.CT = ''   ;* For gl date errors IDs

          IF REDISPLAY.ALL THEN
             LN.IDS  = ''
             MAX.LNS = 0
             LN.ERRS = ''
             LINE    = 0
             VCLR 1
             START.NO = 1
          END ELSE
             START.NO = ST.CT
             LINE     = OLINE - 1
          END
*-------------------------------------------------------------------------*
          FOR STP = START.NO TO ST.CT
             DEL.TM  = MNFST<11,STP>
BLK.LP:
             IF BLK.NO <= BLK.CT AND DEL.TM > BLK.FRM THEN
                *** Display Blockout record
                GOSUB DISP.BLK
                GOTO BLK.LP
             END

             IDS         = MNFST<15,STP>
             CMNTS       = MNFST<16,STP>
             *STAGE.LOCN  = STG.LOC
             HOLD.PICK   = MNFST<37,STP>
             SHIPMENT.ID = MNFST<41,STP>
             PKGS        = RAISE(RAISE(MNFST<42,STP>))
             TK.CT       = DCOUNT(IDS,SVM)
             IF REDISPLAY.ALL THEN
                START.TK = 1
             END ELSE
                START.TK = TK.CT
                IF START.TK # 1 THEN
                   OLD.STP  = STP
                END
             END
             FOR TK = START.TK TO TK.CT
                TICKET.ID   = IDS<1,1,TK>
                CMNT        = RAISE(RAISE(CMNTS<1,1,TK>))
                OID         = FIELD(TICKET.ID,'.',1)
                INVN        = FIELD(TICKET.ID,'.',2)
                ERR.ENTRY   = ''
                MATREAD LED FROM LEDFILE,OID ELSE
                   *** Delete Ticket from manifest
                   GOSUB DEL.TKT
                   IF REDISPLAY THEN
                      ST.CT = ST.CT-1
                      STP   = STP -1
                      GOTO DISP.NEXT.STP
                   END
                   GOTO DISP.NEXT.TKT
                END
                IF LEN(INVN) = 3 THEN
                   LOCATE INVN+0 IN LED(8)<1> SETTING GEN ELSE
                      *** Delete Ticket from manifest
                      GOSUB DEL.TKT
                      IF REDISPLAY THEN
                         ST.CT = ST.CT-1
                         STP   = STP-1
                         GOTO DISP.NEXT.STP
                      END
                      GOTO DISP.NEXT.TKT
                   END
                END ELSE
                   LOCATE INVN+0 IN LED(12)<1> SETTING GEN ELSE GEN = 1
                   IF LED(8)<1,GEN> # '' THEN
                      MSG<2> = 'Open ticket now invoiced and must be changed.'
                      ERR.ENTRY<1,2> = YES
                   END
                END

                VIA.OVRD = LED(134)<1,GEN,3>
                VIA.ORIG = LED(70)<1,GEN>
                DT.ORIG = LED(9)<1,GEN>
                IF VIA.ORIG # VIA OR (VIA.OVRD AND VIA.OVRD # VIA) OR DT.ORIG # SHIP.DT THEN
                   * Need to check and warn if ticket in a closed period.
                   * if ship via or ship date would change.
                   GL.CLOSE.DT.GET OID,GL.CLOSE.DT
                   * Don't need to check for closed G/L period on an open
                   * order generation.
                   IF LED(23)<1,GEN> # 0 THEN
                      IF LED(23)<1,GEN> < GL.CLOSE.DT THEN
                         MSG<3>         = 'Ticket in a closed period on '
                         MSG.GL.CT<-1>  = TICKET.ID
                         ERR.ENTRY<1,3> = YES
                      END
                   END
                END

                FLAG.TKT = NO
                IF LED(70)<1,GEN>#VIA OR LED(2)<1,GEN,2>#BR OR LED(9)<1,GEN>#SHIP.DT THEN
                   MSG<1> = 'Branch, Ship-date, or Ship-via no longer matches Manifest on '
                   MSG.CT += 1
                   FLAG.TKT = YES
                   ERR.ENTRY<1,1> = YES
                END

                *** Activate our CUS and CUSS arrays...
                PRC.BR = LED(2)<1,GEN,1>
                BT.CN  = LED(1)<1,GEN>
                ST.CN  = LED(5)<1,GEN>
                OE.GET.QSIGN QSIGN,OID,GEN

                GET.CUS BR,BT.CN,ST.CN,QSIGN

                *** See if the Order is flagged for COD...
                SOE.CREDIT.CHECK ST.CN,,CUST.COD.FLAG
                IF NOT(COD.MSG) THEN
                   CUST.COD.FLAG = NO
                END
                *** Get COD info for the order
                GOSUB GET.COD.INFO

                IF STP # OLD.STP THEN
                   IF STP # 1 THEN
                      *** Draw line separator
                      GOSUB SEP.LINE
                   END
                   CNAME     = CUSS(1)
                   ADDR      = FIELD(RAISE(LED(78)<1,GEN>),VM,1,3)
                   ADDR<1,3> = TRIM(ADDR<1,3>:' ':LED(75)<1,GEN>)
                END ELSE
                   CNAME     = '... Same ...'
                END
                READV EXP.TM.DATA FROM LEDLFILE,OID,16 ELSE EXP.TM.DATA = ''
                EXP.TM = EXP.TM.DATA<1,GEN,1>
                ACT.TM = EXP.TM.DATA<1,GEN,2>

                LINE     += 1
                LN.IDS<LINE> = STP:'~':TK
                LN.ERRS<LINE>= ERR.ENTRY
                *** Clear Line
                GOSUB CLR.LINE
                VPRINT  0,LINE,STP                        "R#3"
                VPRINT  4,LINE,TICKET.ID                  "L#15"
                VPRINT 20,LINE,CNAME                      "L#30"
                BEGIN CASE
                CASE VIEW = 2 OR VIEW = 4
                   VPRINT 51,LINE,OCONV(DEL.TM,'MTH')     "L#7"
                   VPRINT 60,LINE,OCONV(EXP.TM,'MTH')     "L#7"
                   IF EXP.TM THEN
                      VPRINT 69,LINE,(DEL.TM-EXP.TM)/60   "R0#5":' min'
                   END ELSE
                      VPRINT 69,LINE,''                   "L#9"
                   END
                CASE VIEW = 3
                   VPRINT 51,LINE,OCONV(DEL.TM,'MTH')     "L#7"
                   VPRINT 60,LINE,OCONV(ACT.TM,'MTH')     "L#7"
                   IF ACT.TM THEN
                      VPRINT 69,LINE,(DEL.TM-ACT.TM)/60   "R0#5":' min'
                   END ELSE
                      VPRINT 69,LINE,''                   "L#9"
                   END
                CASE VIEW = 5
                   QSIGN = -1
                   OE.ORDER.TOTAL OID,GEN,QSIGN,TOTAL
                   OE.GET.WEIGHT OID,GEN,TOL.PCS,TOL.WGHT,TOL.LOAD
                   VPRINT 51,LINE,OCONV(DEL.TM,'MTH')     "L#7"
                   VPRINT 59,LINE,OCONV(TOTAL,'MD02')     "R#7"
                   VPRINT 67,LINE,OCONV(TOL.LOAD,'MD14')  "R#5"
                   VPRINT 73,LINE,ICONV(OCONV(TOL.WGHT,W.FMT),'MR0')  "R#5"
                CASE VIEW = 6
                   VPRINT 51,LINE,OCONV(EXP.TM,'MTH')     "L#7"
                   VPRINT 60,LINE,OCONV(ACT.TM,'MTH')     "L#7"
                   IF ACT.TM AND EXP.TM THEN
                      VPRINT 69,LINE,(EXP.TM-ACT.TM)/60   "R0#5":' min'
                   END ELSE
                      VPRINT 69,LINE,''                   "L#9"
                   END
                CASE VIEW = 7
                   VPRINT 51,LINE,OCONV(DEL.TM,'MTH')     "L#7"
                   READV STAGE.LOCN FROM LEDLFILE,OID,22 ELSE STAGE.LOCN = ''

                   VPRINT 59,LINE,STAGE.LOCN              "L#15"
                   VPRINT 75,LINE,' ':'NY'[HOLD.PICK+1,1]:' '
                CASE VIEW = 8
                   VPRINT 51,LINE,OCONV(DEL.TM,'MTH')     "L#7"
                   VIEW.SHIPMENT.ID = SHIPMENT.ID
                   IF TICKET.ID[1,1] # 'T' THEN
                      VIEW.SHIPMENT.ID = ''
                   END
                   VPRINT 59,LINE,SPACE(5):VIEW.SHIPMENT.ID    "L#14"
                CASE OTHERWISE
                   IF SUMMATION(PKGS) = 0 THEN
                      READV PACKAGES FROM LEDLFILE,OID,18 ELSE PACKAGES=''
                      PACKAGES = PACKAGES<1,GEN>
                   END ELSE
                      PACKAGES = ''
                      IF TK = 1 THEN
                         P.CT = DCOUNT(PKGS,AM)
                         FOR P = 1 TO P.CT
                            FOR X = 1 TO 4
                               PACKAGES<1,1,X> += PKGS<P,X>
                            NEXT X
                         NEXT P
                      END
                   END
                   VPRINT 51,LINE,OCONV(DEL.TM,'MTH')     "L#7"
                   VPRINT 59,LINE,PACKAGES<1,1,1>       "R#4"
                   VPRINT 64,LINE,PACKAGES<1,1,2>       "R#4"
                   VPRINT 69,LINE,PACKAGES<1,1,3>       "R#4"
                   VPRINT 74,LINE,PACKAGES<1,1,4>       "R#4"
                END CASE

                IF STP # OLD.STP AND VIEW # 4 THEN
                   STP.ADR<STP> = TRIM(CNAME:VM:ADDR)
                   FOR L = 1 TO 3
                      IF ADDR<1,L> # '' THEN
                         LINE += 1
                         LN.IDS<LINE> = '~~A'
                         *** Clear Line
                         GOSUB CLR.LINE
                         IF FLAG.TKT THEN
                            VPRINT 4,LINE,'! WARNING !!'     "L#14"
                            FLAG.TKT = ''
                         END
                         VPRINT 20,LINE,ADDR<1,L>         "L#30"
                      END
                   NEXT L
                   OLD.STP = STP
                END
                IF FLAG.TKT AND VIEW # 4 THEN
                   LINE += 1
                   LN.IDS<LINE> = '~~F'
                   *** Clear Line
                   GOSUB CLR.LINE
                   VPRINT 4,LINE,'! WARNING !!'        "L#15"
                END
                IF CMNT # '' THEN
                   CMNT.CT = DCOUNT(CMNT,VM)
                   IF FIELD(CMNT,VM,1) = '** EManifest Comments **' THEN
                      STR = FIELD(CMNT,VM,2,CMNT.CT)
                   END ELSE
                      STR = CMNT
                   END
                   CONVERT VM TO ' ' IN STR
                   STR = TRIM(STR)
                   FOLD STR,30,NEW.CMNT,VCT
                   IF FIELD(CMNT,VM,1) = '** EManifest Comments **' THEN
                      NEW.CMNT = FIELD(CMNT,VM,1):VM:NEW.CMNT
                   END
                END ELSE
                   NEW.CMNT = CMNT
                END
                CMNT.CT = DCOUNT(NEW.CMNT,VM)
                FOR L = 1 TO CMNT.CT
                   LINE += 1
                   LN.IDS<LINE> = '~~C'
                   *** Clear Line
                   GOSUB CLR.LINE
                   VPRINT 20,LINE,NEW.CMNT<1,L>          "L#30"
                NEXT L
*-------------------------------------------------------------------------*
                * PRINT COD INFO *
                IF COD.INFO # '' THEN
                   CMNT.CT = DCOUNT(COD.INFO,VM)
                   FOR L = 1 TO CMNT.CT
                      LINE += 1
                      LN.IDS<LINE> = '~~C'
                      *** Clear Line
                      GOSUB CLR.LINE
                      VPRINT 20,LINE,COD.INFO<1,L>          "L#30"
                   NEXT L
                END
*---------END PRINT COD INFO----------------------------------------------*
DISP.NEXT.TKT: * Display next ticket on manifest
             NEXT TK
DISP.NEXT.STP: * Display next stop on manifest
          NEXT STP

          FOR L = BLK.NO TO BLK.CT
             *** Display Blockout record
             GOSUB DISP.BLK
          NEXT L

          LINE += 1
          LN.IDS<LINE> = 'NEW'
          LN.ERRS<LINE>= ''
          *** Clear Line
          GOSUB CLR.LINE
          MAX.LNS = LINE
          FOR LINE = MAX.LNS TO MAX.LNS+16
             *** Clear Line
             GOSUB CLR.LINE
          NEXT LINE
          IF OLINE > MAX.LNS THEN OLINE = MAX.LNS
          IF OLINE < 1 THEN OLINE = 1
          REFRESHED = YES
          IF MSG # '' THEN
             IF MSG<1> # '' THEN
                MSG<1> := MSG.CT:' tickets.'
             END
             IF MSG<3> # '' THEN
                MGL.CT = DCOUNT(MSG.GL.CT,AM)
                IF MGL.CT  < 4 THEN
                   * Only room to display 3 tickest on one line summary.
                   CONVERT AM TO ' ' IN MSG.GL.CT
                   MSG<3> := MSG.GL.CT
                END ELSE
                   MSG<3> := MGL.CT:' tickets.'
                END
             END
             MSG = TRIM(MSG,AM)  ;* remove blank lines
             MESS 3,2,MSG
          END

          RETURN
*-------------------------------------------------------------------------*
RECALC.TIME: * recalc delivery times based on start parameters, interval
             * and around any blocks. Do not recheck stops.
          MNFST<4> = STRT.TM
          MNFST<5> = FDEL.TM
          MNFST<6> = INTVL
          NXT.TM   = FDEL.TM
          BLK.CT   = DCOUNT(MNFST<14>,VM)
          BLK.FRM  = MNFST<14,1,1>
          BLK.TO   = MNFST<14,1,2>
          BLK.NO   = 1
          STP.CT = DCOUNT(MNFST<15>,VM)

          FOR STP = 1 TO STP.CT
             GOSUB CHK.BLK
             MNFST<11,STP> = NXT.TM
             NXT.TM += INTVL*60
          NEXT STP

          RETURN
*-------------------------------------------------------------------------*
CHK.BLK:  * note - no provision for extra travel around block
          IF BLK.NO > BLK.CT OR NXT.TM < BLK.FRM THEN RETURN
          NXT.TM = BLK.TO + (NXT.TM - BLK.FRM)
          BLK.NO += 1
          BLK.FRM = MNFST<14,BLK.NO,1>
          BLK.TO  = MNFST<14,BLK.NO,2>
          GOTO CHK.BLK

          RETURN
*-------------------------------------------------------------------------*
DISP.BLK: *  display block out record
          *** Draw line separator
          GOSUB SEP.LINE
          LINE += 1
          LN.IDS<LINE> = 'MSC'
          *** Clear Line
          GOSUB CLR.LINE
          VPRINT 0,LINE,'BLK'                             "R#3"
          VPRINT 4,LINE,'BLOCKED FOR'                     "L#15"
          VPRINT 20,LINE,MNFST<14,BLK.NO,3>               "L#30"
          VPRINT 51,LINE,OCONV(BLK.FRM,'MTH')             "L#7"
          LINE += 1
          LN.IDS<LINE> = 'MSC'
          *** Clear Line
          GOSUB CLR.LINE
          VPRINT 0,LINE,''                                "R#3"
          VPRINT 4,LINE,''                                "L#15"
          VPRINT 20,LINE,'        Ending at...'           "L#30"
          VPRINT 51,LINE,OCONV(MNFST<14,BLK.NO,2>,'MTH')  "L#7"
          BLK.NO += 1
          BLK.FRM = MNFST<14,BLK.NO,1>

          RETURN
*-------------------------------------------------------------------------*
CLR.LINE: * Clear Line
          VPRINT 0,LINE,SEP.CHR         "L#3"
          VPRINT 4,LINE,SEP.CHR         "L#15"
          VPRINT 20,LINE,SEP.CHR        "L#30"
          VPRINT 51,LINE,SEP.CHR        "L#7"

          BEGIN CASE
          CASE VIEW = 1
             VPRINT 59,LINE,SEP.CHR        "L#4"
             VPRINT 64,LINE,SEP.CHR        "L#4"
             VPRINT 69,LINE,SEP.CHR        "L#4"
             VPRINT 74,LINE,SEP.CHR        "L#4"
          CASE VIEW = 5
             VPRINT 59,LINE,SEP.CHR     "L#7":''
             VPRINT 67,LINE,SEP.CHR     "L#5":''
             VPRINT 73,LINE,SEP.CHR     "L#5"
          CASE VIEW = 6
             VPRINT 51,LINE,SEP.CHR     "L#7":''
             VPRINT 59,LINE,SEP.CHR     "L#9":''
             VPRINT 69,LINE,SEP.CHR     "L#9"
          CASE VIEW = 7
             VPRINT 51,LINE,SEP.CHR     "L#7":''
             VPRINT 59,LINE,SEP.CHR     "L#15":''
             VPRINT 75,LINE,SEP.CHR     "L#3"
          CASE VIEW = 8
             VPRINT 59,LINE,SEP.CHR     "L#19"
          CASE OTHERWISE
             VPRINT 59,LINE,SEP.CHR     "L#9":''
             VPRINT 69,LINE,SEP.CHR     "L#9"
          END CASE

          RETURN
*-------------------------------------------------------------------------*
SEP.LINE: * Separator line
          IF VIEW = 4 THEN RETURN
          LINE += 1
          LN.IDS<LINE> = 'MSC'
          SEP.CHR = STR('',40)
          *** Clear Line
          GOSUB CLR.LINE
          SEP.CHR = ''

          RETURN
*-------------------------------------------------------------------------*
DEL.TKT:  * Delete Ticket from Manifest
          REDISPLAY = NO
          MNFST     = DELETE(MNFST,15,STP,TK)
          MNFST     = DELETE(MNFST,16,STP,TK)
          IF MNFST<15,STP> = '' THEN
             *** Delete stop from manifest
             GOSUB DEL.STP
             REDISPLAY = YES
          END

          RETURN
*-------------------------------------------------------------------------*
DEL.STP:  * Delete Stop from Manifest
          MNFST = DELETE(MNFST,15,STP)
          MNFST = DELETE(MNFST,16,STP)
          MNFST = DELETE(MNFST,10,STP)
          MNFST = DELETE(MNFST,11,STP)

          RETURN
*-------------------------------------------------------------------------*
GET.COD.INFO: * Get COD info for order
          COD.INFO = ''
          IF NOT(CUST.COD.FLAG) THEN RETURN
          COD.CT = DCOUNT(COD.MSG,VM)
          COD.INFO<-1> = STR('*',30)
          FOR CC = 1 TO COD.CT
             COD.INFO<-1> = ' ':COD.MSG<1,CC> 'L#29':' '
          NEXT CC

          COD.TOTAL = 0
          SOE.MANIFEST.CALC.COD OID,GEN,COD.TOTAL
          COD.INFO<-1> = (' COD Order Total: ':OCONV(COD.TOTAL,'MR2'))"L#30"
          COD.INFO<-1> = STR('*',30)
          COD.INFO = LOWER(COD.INFO)

          RETURN
*-------------------------------------------------------------------------*
!TSMITH~01/25/14~20:38
